The DIVAs (Dynamic Information Visualization of Agent systems) project aims at developing generic reusable components and libraries that can be instantiated and integrated to create decentralized agent-based simulation systems where agents are situated in open (i.e., inaccessible, non-deterministic, dynamic and continuous) environments.
As a software development framework, DIVAs encompasses concepts, architecture, abstract classes, software components and libraries.
This large-scale project was started several years ago and has gone through multiple iterations. The various internal releases allowed the definition, refinement and prototyping of the fundamental concepts and building blocks of the framework. The latest baselined version is DIVAs 4.
DIVAs 4 provides JAVA programmers with the components necessary to build executable agent-based simulation systems. Based on sound software engineering principles (i.e., separation of concerns, modularity, information hiding), we have defined and completed a flexible and extensible, “plug-in” architecture whose components can be instantiated and reused to develop various multi-agent simulation systems. The framework is fully implemented in Java and is based on state-of-the-art enterprise-scale technologies (e.g., ActiveMQ , jMonkey, JavaFX).
DIVAs Main Constituents
The Simulation Module creates large-scale simulation instances.
The Message Transport Service (MTS) provides a messaging infrastructure that allows different elements of the simulation to communicate.
The interactive Control and Visualization Module receives information from the MTS, renders 2D/3D images of the simulation, and allows simulation interaction (e.g., environment specification, event triggers, agent, and environment property modification).
DIVAs Core Constituents
The Agent System creates and manages agents in the simulation.
The Environment System creates and manages a dynamic environment in which the agents are situated.
The Simulation Microkernel encapsulates the most important core services of the framework (e.g., simulation heartbeat), manages the workflow of the simulation and provides mechanisms for loading/storing agent and environment specifications to/from persistent storage (e.g., xml file).
DIVAs Additional Components
A Data Management System for storing and processing information collected from the simulation.
Domain-Specific Libraries for the rapid development of simulation platforms. Currently, DIVAs embeds models for virtual agents and traffic simulation domains.
The Simulation Control GUI allows users to control a running simulation (i.e., start/stop the simulation, adjust parameters, save/load simulation states) through the Simulation Control System. It also allows users to query detailed properties of simulation entities (e.g., existing traffic lights) through the Simulation Query System.
The Simulation Query Interface is used to submit queries about agents (e.g., find agent #131) or environment objects (e.g., display information about buildings in the environment). These queries are sent to the GUISimState Repository which is updated at every simulation cycle with data pertaining to the virtual entities as well as statistics (e.g., agent count, object count) and control information (e.g., simulation cycle time, simulation cycle number).
In addition, users can use the Simulation Control Interface to control the simulation (e.g., start/stop, pause, save). User’s inputs are converted into control command messages which are transmitted to the Divas-Core through the MTS.
DIVAs Visualization and Editing Systems render 2D and/or 3D images of a simulation and provide mechanisms for users to interact with and modify the simulation parameters at run-time.
The Simulation Control GUI allows users to control a running simulation (i.e., start/stop the simulation, adjust parameters, save/load simulation states) through the Simulation Control System. It also allows users to query detailed properties of simulation entities (e.g., existing traf?c lights) through the Simulation Query System.
DIVAs Editing System allows users to create virtual worlds by adding and/or editing virtual entities. The Editing System also allows users to interact with the simulation at run-time (e.g., trigger an event) or edit properties of agents and environment (e.g., change an agent vision scope, add or edit environment object). User inputs are converted into user commands by the Simulation Commander and transmitted as external stimuli messages to the Divas-Core through the MTS.
The 2D and 3D Visualizers receive simulation states through the MTS. These states are stored in the VizSimState Repository and are used to create 2D and 3D representations of the simulated virtual entities.
In an effort to address the challenge related to the execution of a large number of virtual agents situated in an open environment, researchers have followed two approaches:
We propose a model for the execution of large-scale MABS on a single host. In our approach, agents execute their behaviors and are not subjected to any external resource optimization mechanism (e.g., aggregation/disaggregation). The open environment which has a decentralized structure is supported by an underlying self-organizing system consisting of micro- and macro-level specialized agents.
The Simulation Control GUI allows users to control a running simulation (i.e., start/stop the simulation, adjust parameters, save/load simulation states) through the Simulation Control System. It also allows users to query detailed properties of simulation entities (e.g., existing traf?c lights) through the Simulation Query System.
More publications available here
This video shows the concurrent execution of the 2D and 3D visualizers. Both visualizers are synchronized: a run-time modification performed through one visualizer is reflected simultaneously on the other.
Self-organizing environment
Self-organizing environment